import { Redirect, Route } from 'react-router';

export default (props) => {
    if (props.routes) {
        return props.routes.map((item, index) => {
            return (
                <Route
                    key={index}
                    path={item.path}
                    render={(props) => {
                        // 不管怎么写，最后都返回一个组件就可以
                        const token = window.sessionStorage.getItem('token');
                        if (item.path !== '/login' && !token) {
                            return <Redirect to="/login" />;
                        }
                        // 校验动态路由
                        let profile = window.sessionStorage.getItem('profile');
                        profile = (profile && JSON.parse(profile)) || {};

                        // 不显示这个路由
                        if (item.role && !item.role.includes(profile.role_id)) {
                            return <Redirect to="/admin/403" />;
                        }

                        // 都校验完了，就往下走吧
                        return (
                            <item.component {...props} routes={item.children} />
                        );
                    }}
                />
            );
        });
    }
    return null;
};
